package com.sprouting.ops.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sprouting.ops.annotations.invoke.CheckIsNullOrEmpty;
import com.sprouting.ops.annotations.invoke.CheckLength;
import com.sprouting.ops.annotations.invoke.CheckNotNull;
import com.sprouting.ops.interfaces.AddGroup;
import com.sprouting.ops.interfaces.UpdGroup;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;

/**
 * 现场;一个公司有多个现场，一个现场可能就是一个新项目驻点地方
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2023/11/8 14:40
 */
@TableName("ops_site")
@Data
public class OpsSite extends BaseModel {

    /**
     * 主键
     */
    @CheckNotNull(message = "非法ID", groups = UpdGroup.class)
    @CheckIsNullOrEmpty(message = "无效ID", groups = AddGroup.class)
    @TableId
    private String id;
    /**
     * 现场名称
     */
    @CheckLength(min = 1, max = 150, message = "现场名称超过长度限制")
    @CheckNotNull(message = "请输入现场名称")
    private String name;
    /**
     * 所在行政区划代码
     */
    @CheckLength(max = 10, message = "行政区划代码超过长度限制")
    // @CheckNotNull(message = "请选择行政区划代码")
    private String areaCode;
    /**
     * 现场具体位置信息
     */
    @CheckLength(max = 500, message = "现场具体位置信息超过长度限制")
    // @CheckNotNull(message = "请输入现场具体位置信息")
    private String address;
    /**
     * 场所负责人-总负责人
     */
    @CheckLength(max = 150, message = "场所负责人姓名超过长度限制")
    // @CheckNotNull(message = "请输入场所负责人姓名")
    private String leaderName;
    /**
     * 负责人电话
     */
    @CheckLength(max = 16, message = "场所负责人电话超过长度限制")
    // @CheckNotNull(message = "请输入场所负责人电话")
    private String leaderPhone;
    /**
     * 重要等级，1-5颗星
     */
    private Integer importance;
    /**
     * 是否保密单位
     * @see com.sprouting.ops.interfaces.ConstantBase.YesOrNo#YES 是保密单位
     */
    private Integer secrecy;
    /**
     * 项目阶段
     * @see com.sprouting.ops.interfaces.ConstantBase.SiteStage
     */
    private Integer stage;
    /**
     * logo图标
     * @see DromaraFileStorage#getId()
     */
    private String ico;
    /**
     * 说明
     */
    @CheckLength(max = 1000, message = "说明超过长度限制")
    private String description;
}
